﻿using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Wq.MeetingService.Entities
{
    /// <summary>
    /// 场地 
    /// </summary>
    [Tenant("meeting")]
    [SugarTable("Wq_Venue")]
    public class VenueInfo
    {

        /// <summary>
        /// Id
        /// </summary>
        [SugarColumn(ColumnDescription = "Id", IsPrimaryKey = true, IsIdentity = true)]
        public long Id { get; set; }

        /// <summary>
        /// 名称
        /// </summary>
        [SugarColumn(ColumnDescription = "场地名称")]
        public string Name { get; set; }

        /// <summary>
        /// 标签
        /// </summary>
        [SugarColumn(ColumnDescription = "标签")]
        public string Tag { get; set; }
        /// <summary>
        /// 类型Id
        /// </summary>
        [SugarColumn(ColumnDescription = "类型Id")]
        public int TypeId { get; set; }

        /// <summary>
        /// 分类Id
        /// </summary>
        [SugarColumn(ColumnDescription = "分类Id")]
        public int CategoryId { get; set; }

        /// <summary>
        /// 品牌Id
        /// </summary>
        [SugarColumn(ColumnDescription = "品牌Id")]
        public int BrandId { get; set; }

        /// <summary>
        /// 地区Id
        /// </summary>
        [SugarColumn(ColumnDescription = "地区Id")]
        public int RegionId { get; set; }

        /// <summary>
        /// 城市Id
        /// </summary>
        [SugarColumn(ColumnDescription = "城市Id")]
        public int CityRegionId { get; set; }

        /// <summary>
        /// 商业圈
        /// </summary>
        [SugarColumn(ColumnDescription = "商业圈")]
        public long BusinessId { get; set; }

        /// <summary>
        /// 详细地址
        /// </summary>
        [SugarColumn(ColumnDescription = "详细地址")]
        public string Address { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        [SugarColumn(ColumnDescription = "经度", ColumnDataType = "decimal(18,8)")]
        public decimal Longitude { get; set; }

        /// <summary>
        /// 纬度
        /// </summary>
        [SugarColumn(ColumnDescription = "纬度", ColumnDataType = "decimal(18,8)")]
        public decimal Latitude { get; set; }

        /// <summary>
        /// 最小面积
        /// </summary>
        [SugarColumn(ColumnDescription = "最小面积", ColumnDataType = "decimal(10,2)")]
        public decimal MinArea { get; set; }
        /// <summary>
        /// 最大面积
        /// </summary>
        [SugarColumn(ColumnDescription = "最大面积", ColumnDataType = "decimal(10,2)")]
        public decimal MaxArea { get; set; }

      
        /// <summary>
        /// 最小人数
        /// </summary>
        [SugarColumn(ColumnDescription = "最小人数")]
        public int MinPeople { get; set; }
        /// <summary>
        /// 最大人数
        /// </summary>
        [SugarColumn(ColumnDescription = "最大人数")]
        public int MaxPeople { get; set; }

        /// <summary>
        /// 会议室数量
        /// </summary>
        [SugarColumn(ColumnDescription = "会议室数量")]
        public int MeetingRoomCount { get; set; }

        /// <summary>
        /// 会议室最小价格
        /// </summary>
        [SugarColumn(ColumnDescription = "会议室最小价格", ColumnDataType = "decimal(18,2)")]
        public decimal MinMeetingRoomPrice { get; set; }

        /// <summary>
        /// 会议室最大价格
        /// </summary>
        [SugarColumn(ColumnDescription = "会议室最大价格", ColumnDataType = "decimal(18,2)")]
        public decimal MaxMeetingRoomPrice { get; set; }

        /// <summary>
        /// 客房数量
        /// </summary>
        [SugarColumn(ColumnDescription = "客房数量")]
        public int GuestRoomCount { get; set; }

        /// <summary>
        /// 客房最小价格
        /// </summary>
        [SugarColumn(ColumnDescription = "客房最小价格", ColumnDataType = "decimal(18,2)")]
        public decimal MinGuestRoomPrice { get; set; }

        /// <summary>
        /// 客房最大价格
        /// </summary>
        [SugarColumn(ColumnDescription = "客房最大价格", ColumnDataType = "decimal(18,2)")]
        public decimal MaxGuestRoomPrice { get; set; }

        /// <summary>
        /// 停车位
        /// </summary>
        [SugarColumn(ColumnDescription = "停车位")]
        public int ParkingCount { get; set; }

        /// <summary>
        /// 装修时间
        /// </summary>
        [SugarColumn(ColumnDescription = "装修时间")]
        public DateTime DecorationDate { get; set; }

        /// <summary>
        /// 开业时间
        /// </summary>
        [SugarColumn(ColumnDescription = "开业时间")]
        public DateTime OpeningDate { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        [SugarColumn(ColumnDescription = "创建时间")]
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 简介
        /// </summary>
        [SugarColumn(ColumnDescription = "简介",Length = 1000)]
        public string Description { get; set; }

        /// <summary>
        /// 餐厅数量
        /// </summary>
        [SugarColumn(ColumnDescription = "餐厅数量")]
        public int DiningRoomCount { get; set; }

        /// <summary>
        /// 地区Id全路径
        /// </summary>
        [SugarColumn(ColumnDescription = "地区Id全路径")]
        public string RegionFullIds { get; set; }
        /// <summary>
        /// 全地址名称
        /// </summary>
        [SugarColumn(ColumnDescription = "全地址名称")]
        public string RegionFullName { get; set; }

        /// <summary>
        /// 游览量
        /// </summary>
        [SugarColumn(ColumnDescription = "游览量")]
        public int Visits { get; set; }

        /// <summary>
        /// 排序序号
        /// </summary>
        [SugarColumn(ColumnDescription = "排序序号")]
        public int Sequence { get; set; }

        /// <summary>
        /// 会议室
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(MeetingRoomInfo.VenueId))]
        public List<MeetingRoomInfo> Meetings { get; set; }

        /// <summary>
        /// 餐厅
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(MeetingRoomInfo.VenueId))]
        public List<DiningRommInfo> Dinings { get; set; }

        /// <summary>
        /// 客房
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(MeetingRoomInfo.VenueId))]
        public List<GuestRoomInfo> Guests { get; set; }

        /// <summary>
        /// 图片
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(MeetingThumbnailInfo.VenueId))]
        public List<MeetingThumbnailInfo> Thumbnails { get; set; }

        /// <summary>
        /// 设施
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(MeetingThumbnailInfo.VenueId))]
        public List<VenueFacilitieInfo> Facilities { get; set; }

        /// <summary>
        /// 特色
        /// </summary>
        [Navigate(NavigateType.OneToMany, nameof(VenuFeaturesInfo.VenueId))]
        public List<VenuFeaturesInfo> Features { get; set; }
    }
}
